%MY_HISTOGRAM calcuates the histogram of the image.

%Für jede Intensität wird im Histogramm angegeben, wie viele Pixel mit dieser
%Intensität im Bild gegeben sind.
%Speziell für das verwendete Bild wird sichtbar, dass es sehr wenige ganz helle und
%bis zu einem Wert von 100 gar keine dunklen Werte gibt und die meisten
%Pixel eine Intensität im mittleren Bereich haben.

function [ hist ] = my_histogram( imgGray )

%Convert image from double to uint8
imgGray_int = im2uint8(imgGray);

%Create a clean histogram vector
hist = int32(zeros(1, 256));   

%Get image dimensions
%[w h] = size(imgGray_int);

%Go by each pixel obtaining its value and adding to the right
%address in the histogram vector
for i=1:size(imgGray_int,1)
    for j=1:size(imgGray_int,2)
        hist(imgGray_int(i,j)+1) = hist(imgGray_int(i,j)+1) + 1;
    end
end

%Convert back to double at the end
%because histogram plot cannot handle integers
hist = double(hist);

end

